﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using System.Collections.Generic;

namespace FinalProject
{
    public partial class WebForm19 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                try
                {                    
                    string strVisibility = Request["isVisible"];
                    if (strVisibility != "true")
                    {
                        int index = int.Parse(Request["id"]);
                        if (index >= 0)
                        {
                            InitPage(Utility.UserCurrent.LstHoSo[index]);
                            if (strVisibility == null)
                            {
                                HideControl();
                            }
                        }                        
                    }
                    else
                    {
                        InitPage(Utility.HoSoCurrent);
                    }
                }
                catch { }
            }
        }

        #region Init
        private void InitPage(HoSo hoSo)
        {
            InitThongTinCaNhan(hoSo.ThongTinLienHe);
            InitDiv(ref divMTNNNoiDung, hoSo.MucTieuNgheNghiep);
            InitThanhTichNoiBat(hoSo.ThanhTichNoiBat);
            InitDiv(ref divKNNBNoiDung, hoSo.KyNangNoiBat);
            InitThongTinChung(hoSo);
            InitKinhNghiemLamViec(hoSo);
            InitHocVanBangCap(hoSo);
            InitThongTinThamKhao(hoSo);
        }

        private void InitThongTinCaNhan(ThongTinLienHe thongTin)
        {
            try
            {
                Exception(ref lblHoTen, thongTin.HoVaLot + " " + thongTin.Ten);
                Exception(ref lblGioiTinh, thongTin.GioiTinh == true ? "Nam" : "Nữ");
                Exception(ref lblNgaySinh, thongTin.NgaySinh.ToShortDateString());
                if (thongTin.TinhThanh.Ten == "")
                {
                    Exception(ref lblNoiCuNgu, thongTin.DiaChi + ", " + thongTin.QuocGia.Ten);
                }
                else
                {                    
                    Exception(ref lblNoiCuNgu, thongTin.DiaChi + ", " + thongTin.QuanHuyen.Ten +
                        ", " + thongTin.TinhThanh.Ten +
                        ", " + thongTin.QuocGia.Ten);
                }
                Exception(ref lblEmail, "Email: " + Utility.UserCurrent.StrEmail);
                Exception(ref lblSDT, "Điện thoại: " + thongTin.SDT);
            }
            catch { }
        }

        private void InitDiv(ref HtmlGenericControl div, string noiDung)
        {
            if (noiDung != "")
            {
                div.InnerHtml = noiDung;
            }
            else
            {
                div.InnerText = "Không có thông tin.";
            }
        }

        private void InitThanhTichNoiBat(string thanhTichNoiBat)
        {
            if (thanhTichNoiBat == null)
            {
                InitDiv(ref divTTNBNoiDung, "Chưa có thông tin.");
            }
            else
            {
                if (thanhTichNoiBat != "")
                    InitDiv(ref divTTNBNoiDung, thanhTichNoiBat);
                else
                    InitDiv(ref divTTNBNoiDung, "Chưa có thông tin.");
            }
        }

        private void InitThongTinChung(HoSo hoSo)
        {
            Exception(ref divTTCCapBacMongMuon, hoSo.ChucVu.Ten);            

            #region Muc luong
            try
            {
                divTTCMucLuong.InnerText = hoSo.MucLuong <= 0 ? "Thương lượng" : hoSo.MucLuong.ToString() + " USD";
            }
            catch { Exception(ref divTTCMucLuong); }
            #endregion

            #region List Noi lam viec
            try
            {
                if (hoSo.LstNoiLamViec.Count <= 0)
                {
                    Exception(ref divTTCNoiLamViec);
                }
                else
                {
                    if (hoSo.LstNoiLamViec.Count == 1)
                    {
                        Exception(ref divTTCNoiLamViec, hoSo.LstNoiLamViec[0].Ten);
                    }
                    else
                    {
                        for (int i = 0; i < hoSo.LstNoiLamViec.Count - 1; i++)
                        {
                            divTTCNoiLamViec.InnerText += hoSo.LstNoiLamViec[i].Ten + ", ";
                        }
                        divTTCNoiLamViec.InnerText += hoSo.LstNoiLamViec[hoSo.LstNoiLamViec.Count - 1].Ten;
                    }
                }
            }
            catch
            {
                Exception(ref divTTCNoiLamViec);
            }
            #endregion

            #region So nam kinh nghiem
            try
            {
                divTTCSoNamKinhNghiem.InnerText = hoSo.NamKinhNghiem <= 0 ? "Sinh viên / Mới ra trường" : hoSo.NamKinhNghiem.ToString();
            }
            catch { Exception(ref divTTCSoNamKinhNghiem); }
            #endregion

            #region List Ngoai ngu
            try
            {
                if (hoSo.LstNgoaiNgu.Count <= 0)
                {
                    Exception(ref divTTCTrinhDoNgoaiNgu);
                }
                else
                {
                    if (hoSo.LstNgoaiNgu.Count == 1)
                    {
                        divTTCTrinhDoNgoaiNgu.InnerText = hoSo.LstNgoaiNgu[0].Ten +
                            "(" + hoSo.LstTrinhDoNgoaiNgu[0].Ten + ")";
                    }
                    else
                    {
                        for (int i = 0; i < hoSo.LstTrinhDoNgoaiNgu.Count - 1; i++)
                        {
                            divTTCTrinhDoNgoaiNgu.InnerText += hoSo.LstNgoaiNgu[i].Ten +
                            "(" + hoSo.LstTrinhDoNgoaiNgu[i].Ten + "), ";
                        }
                        divTTCTrinhDoNgoaiNgu.InnerText +=
                            hoSo.LstNgoaiNgu[hoSo.LstNgoaiNgu.Count - 1].Ten +
                            "(" + hoSo.LstTrinhDoNgoaiNgu[hoSo.LstTrinhDoNgoaiNgu.Count - 1].Ten + ")";
                    }
                }
            }
            catch
            {
                Exception(ref divTTCTrinhDoNgoaiNgu);
            }
            #endregion

            Exception(ref divTTCViTriMongMuon, hoSo.ViTriMongMuon);

            #region List Nganh nghe
            try
            {
                if (hoSo.LstNganhNghe.Count <= 0)
                {
                    Exception(ref divTTCNganhNghe);
                }
                else
                {
                    if (hoSo.LstNganhNghe.Count == 1)
                    {
                        Exception(ref divTTCNganhNghe, hoSo.LstNganhNghe[0].Ten);
                    }
                    else
                    {
                        for (int i = 0; i < hoSo.LstNganhNghe.Count - 1; i++)
                        {
                            divTTCNganhNghe.InnerText += hoSo.LstNganhNghe[i].Ten + ", ";
                        }
                        divTTCNganhNghe.InnerText += hoSo.LstNganhNghe[hoSo.LstNganhNghe.Count - 1].Ten;
                    }
                }
            }
            catch
            {
                Exception(ref divTTCNganhNghe);
            }
            #endregion            
        }

        private void InitKinhNghiemLamViec(HoSo hoSo)
        {
            try
            {
                if (hoSo.LstKinhNghiemLamViec == null)
                {
                    Exception(ref divKNLVNoiDung);
                    wucKNLV.Visible = false;
                }
                else
                {
                    if (hoSo.LstKinhNghiemLamViec.Count <= 0)
                    {
                        Exception(ref divKNLVNoiDung);
                        wucKNLV.Visible = false;
                    }
                    else
                    {
                        wucKNLV.Visible = true;
                    }
                }
            }
            catch
            {
                Exception(ref divKNLVNoiDung);
                wucKNLV.Visible = false;
            }
        }

        private void InitHocVanBangCap(HoSo hoSo)
        {
            try
            {
                if (hoSo.LstHocVanBangCap == null)
                {
                    Exception(ref divHVBCNoiDung);
                    wucHVBC.Visible = false;
                }
                else
                {
                    if (hoSo.LstHocVanBangCap.Count <= 0)
                    {
                        Exception(ref divHVBCNoiDung);
                        wucHVBC.Visible = false;
                    }
                    else
                    {
                        wucHVBC.Visible = true;
                    }
                }
            }
            catch
            {
                Exception(ref divHVBCNoiDung);
                wucHVBC.Visible = false;
            }
        }

        private void InitThongTinThamKhao(HoSo hoSo)
        {
            try
            {
                if (hoSo.LstThongTinThamKhao == null)
                {
                    Exception(ref divTTTKNoiDung);
                    wucTTTK.Visible = false;
                }
                else
                {
                    if (hoSo.LstThongTinThamKhao.Count <= 0)
                    {
                        Exception(ref divTTTKNoiDung);
                        wucTTTK.Visible = false;
                    }
                    else
                    {
                        wucTTTK.Visible = true;
                    }
                }
            }
            catch
            {
                Exception(ref divTTTKNoiDung);
                wucTTTK.Visible = false;
            }
        }

        private void Exception(ref HtmlGenericControl div)
        {
            div.InnerText = "Không có thông tin.";
        }

        private void Exception(ref HtmlGenericControl div, string content)
        {
            try
            {
                if (content != "")
                {
                    div.InnerText = content;
                }
                else
                {
                    div.InnerText = "Không có thông tin.";
                }
            }
            catch
            {
                div.InnerText = "Không có thông tin.";
            }
        }

        private void Exception(ref Label lbl, string content)
        {
            try
            {
                if (content == "" || content == " " || content == "Email: " || content == ", " || content == "Điện thoại: ")
                    lbl.Text = "Không có thông tin.";
                else
                    lbl.Text = content;
            }
            catch { lbl.Text = "Không có thông tin."; }
        }        
        #endregion

        private void HideControl()
        {            
            spanTitle.InnerText = "Hồ Sơ";
            divBuoc.Style["display"] = "none";
            divAction.Style["display"] = "none";
            divTitle.InnerText = "Thông tin Hồ sơ";
        }

        protected void btnQuayLai_Click(object sender, EventArgs e)
        {
            Response.Redirect("TaoHoSoThongTinCaNhan.aspx?exist=true");
        }

        protected void btnHoanTat_Click(object sender, EventArgs e)
        {
            if (Utility.indexHoSo >= 0)
            {
                Utility.UserCurrent.LstHoSo[Utility.indexHoSo] = new HoSo(Utility.HoSoCurrent);
                //Utility.updateHoSo(Utility.UserCurrent.LstHoSo[Utility.indexHoSo]);
                Utility.indexHoSo = -1;
            }
            else
            {
                Utility.insertHoSoUserFull();
                Utility.indexHoSo = -1;
            }
        }
    }
}
